/*
 * @Author: 
 * @Date: 2025-02-12 15:55:51
 * @LastEditor: zhuxiaoyi
 * @LastEditTime: 2025-04-07 15:15:18
 * @Description: 
 */
import { ApiProperty } from '@midwayjs/swagger';

export class TaskResultCreateDto {
  @ApiProperty({
    description: '任务成果名称',
    example: '阿勒泰市人为活动变化监测任务1',
  })
  resultName: string; // 任务成果名称

  @ApiProperty({
    description: '任务成果描述',
    example: '阿勒泰市人为活动变化监测任务1',
    required: false,
  })
  resultDescription?: string; // 任务成果描述

  @ApiProperty({
    description: '完成日期',
    example: '2024-05-01T10:00:00Z',
    required: false,
  })
  completionDate?: Date; // 完成日期

  @ApiProperty({
    description: '是否已完成',
    example: true,
  })
  isCompleted: boolean; // 是否已完成

  @ApiProperty({
    description: '检测时间',
    example: '2024第1季度',
    required: false,
  })
  detectionTime?: string; // 检测时间

  @ApiProperty({
    description: '任务类型',
    example: '变化检测',
    required: false,
  })
  taskType?: string; // 任务类型

  @ApiProperty({
    description: '任务来源',
    example: '一体机生产',
    required: false,
  })
  taskSource?: string; // 任务来源

  @ApiProperty({
    description: '矢量文件地址',
    example: '/data/vectors/task1.geojson',
    required: false,
  })
  vectorFileAddress?: string; // 矢量文件地址
}

export class TaskResultUpdateDto {
  @ApiProperty({
    description: '任务成果ID',
    example: 'some-uuid',
  })
  id: string; // 任务成果ID

  @ApiProperty({
    description: '任务成果名称',
    example: 'Updated Task Result Name',
    required: false,
  })
  resultName?: string; // 任务成果名称

  @ApiProperty({
    description: '任务成果描述',
    example: 'Updated description for Task Result 1',
    required: false,
  })
  resultDescription?: string; // 任务成果描述

  @ApiProperty({
    description: '完成日期',
    example: '2024-06-01T10:00:00Z',
    required: false,
  })
  completionDate?: Date; // 完成日期

  @ApiProperty({
    description: '是否已完成',
    example: true,
    required: false,
  })
  isCompleted?: boolean; // 是否已完成

  @ApiProperty({
    description: '检测时间',
    example: '2024第二季度',
    required: false,
  })
  detectionTime?: string; // 检测时间

  @ApiProperty({
    description: '任务类型',
    example: '日常监测',
    required: false,
  })
  taskType?: string; // 任务类型

  @ApiProperty({
    description: '任务来源',
    example: '系统自动生成',
    required: false,
  })
  taskSource?: string; // 任务来源

  @ApiProperty({
    description: '矢量文件地址',
    example: '/data/vectors/task1.geojson',
    required: false,
  })
  vectorFileAddress?: string; // 矢量文件地址
}

export class TaskResultQueryDto {
  @ApiProperty({
    description: '任务成果名称',
    example: 'Task Result 1',
    required: false,
  })
  resultName?: string; // 任务成果名称

  @ApiProperty({
    description: '是否已完成',
    example: false,
    required: false,
  })
  isCompleted?: boolean; // 是否已完成

  @ApiProperty({
    description: '检测时间',
    example: '2024第二季度',
    required: false,
  })
  detectionTime?: string; // 检测时间

  @ApiProperty({
    description: '任务类型',
    example: '日常监测',
    required: false,
  })
  taskType?: string; // 任务类型

  @ApiProperty({
    description: '任务来源',
    example: '系统自动生成',
    required: false,
  })
  taskSource?: string; // 任务来源

  @ApiProperty({
    description: '当前页码',
    example: 1,
  })
  page: number = 1;  // 默认页码

  @ApiProperty({
    description: '每页显示的数量',
    example: 10,
  })
  limit: number = 10;  // 默认每页显示数量
}

export class TaskResultDeleteDto {
  @ApiProperty({
    description: '任务成果ID',
    example: 'some-uuid',
  })
  id: string; // 任务成果ID
}